(* mci-ml figure 1.4 p.9 *)

(* fundamental values *)
type id = string
type num = int

(* binary operations *)
datatype binop = Plus
	       | Minus
	       | Times
	       | Div

(* statements *)
datatype stm = CompoundStm of stm * stm
	     | AssignStm of id * exp
	     | PrintStm of exp list

(* commands *)
     and exp = IdExp of id
	     | NumExp of num
	     | OpExp of exp * binop * exp
	     | EseqExp of stm * exp

(* programs *)
type prg = stm
